<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
</body>
</html>

<script>
  // 逻辑运算符
  // &&   ||   !
  // 逻辑运算符一般是将多个表达式的值组合起来，再次运算产生的新的表达式的值
  // 逻辑运算符最终的结果并不一定是布尔值

  // && 逻辑与 (and)
  // - 进行 且 的运算
  // - 必须符号两边同时为 true，才会返回 true
  // - 只要有一边不是 true，那么就会返回 false
  // - 同真为真，一假则假
  // console.log(5 < 3 && 13 <= 10)


  // || 逻辑或 (or)
  // - 进行 或 的运算
  // - 符号两边任意一边为 true，都会返回 true
  // - 只有两边都是 false 的时候才会返回 false
  // - 一真为真，同假则假
  // console.log(5 > 3 || true); // true
  // console.log(5 < 3 || true); // true
  // console.log(5 < 3 || false); // true


  // ! 逻辑非 (not)
  // - 进行 取反 运算
  // - 本身是 true 的，会变成 false
  // - 本身是 false 的，会变成 true
  // console.log(!true);
  // console.log(!(5 > 3));
  // console.log(!5 > -3); 
  // 出现了！，先回将5转成布尔值true，加上！取反变成false
  // 出现>，就会将左边的false转成数字0，再做比较

  // !的后面如果不是布尔值，那么会强制转成布尔值并取反
  // 两个！！就可以直接将一个值转成布尔值，相当于Boolean()
  // console.log(!!undefined);






</script>